"""
os.path 模块提供了目录相关（路径判断、路径切分、路径连接、文件夹遍历）的操作
    isabs(path) 判断path是否绝对路径
    isdir(path) 判断path是否为目录
    isfile(path) 判断path是否为文件
    exists(path) 判断指定路径的文件是否存在
    getsize(filename) 返回文件的大小
    abspath(path) 返回绝对路径
    dirname(p) 返回目录的路径
    getatime(filename) 返回文件的最后访问时间
    getmtime(filename) 返回文件的最后修改时间
    walk(top,func,arg) 递归方式遍历目录
    join(path,*paths) 连接多个path
    split(path) 对路径进行分割，以列表形式返回
    splitext(path) 从路径中分割文件的扩展名
"""

import os.path

#################获得目录、文件基本信息
######################
print(os.path.isabs("d:/a.txt"))  # 是否绝对路径
print(os.path.isdir("d:/a.txt"))  # 是否目录
print(os.path.isfile("d:/a.txt"))  # 是否文件
print(os.path.exists("a.txt"))  # 文件是否存在
print(os.path.getsize("a.txt"))  # 文件大小
print(os.path.abspath("a.txt"))  # 输出绝对路径
print(os.path.dirname("d:/a.txt"))  # 输出所在目录
########获得创建时间、访问时间、最后修改时间
##########
print(os.path.getctime("a.txt"))  # 返回创建时间
print(os.path.getatime("a.txt"))  # 返回最后访问时间
print(os.path.getmtime("a.txt"))  # 返回最后修改时间
################对路径进行分割、连接操作
####################
path = os.path.abspath("a.txt")  # 返回绝对路径
print(os.path.split(path))  # 返回元组：目录、文件('C:\\Users\\Administrator\\PycharmProjects\\mypro_io\\test_os', 'a.txt')
print(os.path.splitext(path))  # 返回元组：路径、扩展名('C:\\Users\\Administrator\\PycharmProjects\\mypro_io\\test_os\\a', '.txt')
print(os.path.join("aa", "bb", "cc"))  # 返回路径：aa/bb/cc

# 列出指定目录下所有的.py文件，并输出文件名
import os
import os.path

path = os.getcwd()
file_list = os.listdir(path)  # 列出子目录和子文件
for filename in file_list:
    pos = filename.rfind(".")
    if filename[pos + 1:] == "py":
        print(filename, end="\t")
print("##################")
file_list2 = [filename for filename in
              os.listdir(path) if filename.endswith(".py")
              ]
for filename in file_list2:
    print(filename, end="\t")
